package org.raymond.iworks.study.basic.designpattern.template;

/**
 * @author raymond
 * @version V1.0
 * @Description: TODO
 */
public abstract class SoyaMilk {

    // 模板方法,可以是final以防止子类覆盖
    public final void make(){
        select();
        addCondiments();
        soak();
        beat();
    }

    // 选材料
    protected void select(){
        System.out.println("1 选择好的新鲜黄豆");
    }
    // 添加不同的配料
    abstract protected void addCondiments();

    // 浸泡
    protected void soak(){
        System.out.println("3 黄豆和配料开始浸泡");
    }
    // 打碎
    protected void beat(){
        System.out.println("4 用豆浆机打碎黄豆和配料");
    }
}
